Computer virtualization is a technique that involves abstracting a physical computing machine platform into a virtual machine that is executed under the control of virtualization software running on a single hardware computing platform (also referred to herein as a “host system” or a “host computer”). A group of hardware computing platforms may be organized as a cluster to provide the hardware resources for virtual machines. In a server or data center that employs virtual machines, it is common to see hundreds, even thousands, of virtual machines running on multiple clusters of host systems.
For ease of deployment, software management, and hardware cost reduction reasons, virtual machines have been used to support virtual desktops for use in an organization in place of physical workstations. In such environments, a virtual desktop includes a virtual disk that refers to one or more “delta disk images” layered on top of a master image, or “base disk image.” By “layered” it is meant that modifications to the master image, which is configured to be read-only, are written to one or more of the delta disks. In a virtual desktop infrastructure (VDI), the operating system is typically encapsulated in the master image. The same master image is used in generating all virtual desktops. User-specific applications and settings are installed in the one or more delta disks that are layered on top of the master image.
However, this approach has some limitations. First, if the master image is updated with patches, the delta disk images layered on top of the patched master image would not function properly since the delta disk images are dependent on the master image. Accordingly, new delta disk images would need to be created for each VM each time the master image is updated. Second, when many applications and settings are incorporated into the delta disks, the size of the delta disk images may become quite large. Managing large delta disk images can be time-consuming and cumbersome for an administrator.